/**
 * 机构信息实体类
 */
export default interface OrgInfo {
    /**
     * 主键
     */
    id: string
    /**
     * 机构编号
     */
    instituId: string
    /**
     * 机构名称
     */
    name: string
    /**
     * 机构简称
     */
    sigillum: string
    /**
     * 机构类型
     */
    type: string
    /**
     * 所属行政区划
     */
    adminDivision: string
    /**
     * 机构属性
     */
    attribute: string
    /**
     * 机构级别
     */
    level: string
    /**
     * 机构状态
     */
    status: StatusType
    /**
     * 机构失效日期
     */
    expiryDate: string
    /**
     * 加密方式
     */
    encryWay: string
    /**
     * 登录渠道
     */
    allowLoginChannel: string
    /**
     * 查看下属公司权限
     */
    dataRole: string
    /**
     * 是否法人机构
     */
    isLegal: string
    /**
     * 机构附加信息
     */
    iamInstitutionExtinfoDto: iamInstitutionExtinfoDto
    /**
     * 子级机构
     */
    children: OrgInfo[]
    /**
     * 机构是否锁定（仅能后台数据库操作）
     */
    isLock?: IsLock
    /**
     * 是否纳入统计口径
     * 对选类型，字典码值 “，” 分割的字符串
     */
    isStatistics?: string
    /**
     * 机构虚拟类型
     */
    relType: RelType
    /**
     * 扩展字段
     */
    [k: string]: any
}

/**
 * 机构附加信息实体类
 */
export interface iamInstitutionExtinfoDto {
    /**
     * 主键
     */
    id?: string
    /**
     * 机构编号
     */
    instituId?: string
    /**
     * 营业执照编号
     */
    socialCreditCode: string
    /**
     * 联系电话
     */
    phone: string
    /**
     * 联系人
     */
    contact: string
    /**
     * 法人
     */
    companyLegal: string
    /**
     * 开业时间
     */
    openTime: string
    /**
     * 传真
     */
    fax: string
    /**
     * 注册资本
     */
    registerdCapital: string
    /**
     * 经营地址
     */
    registeredAddr: string
    /**
     * 门牌地址
     */
    officeAddress: string
    /**
     * 经营理念
     */
    slogan: string
    /**
     * 机构 logo
     */
    logo?: string
    /**
     * 是否属于7+4
     */
    giveSf?: IsGiveSf
    /**
     * 是否与金农签约
     */
    sign?: IsSign
    /**
     * 是否与金农开通视频双录
     */
    videotape?: IsVideotape
    /**
     * 扩展字段
     */
    [k: string]: any
}

/**
 * 机构属性
 */
export enum AttributeType {
    /**
     * 管理机构
     */
    MANAGE = '00',
    /**
     * 监管机构
     */
    REGU = '10',
    /**
     * 联盟机构
     */
    UNION = '20',
    /**
     * 业务机构
     */
    BUSINE = '30'
}

export const AttributeTypeMapping = {
    [AttributeType.MANAGE]: '管理机构',
    [AttributeType.REGU]: '监管机构',
    [AttributeType.UNION]: '联盟机构',
    [AttributeType.BUSINE]: '业务机构'
}

/**
 * 机构级别
 */
export enum LevelType {
    /**
     * 总（母）公司
     */
    HEAD = '0',
    /**
     * 分公司
     */
    BRANCH = '1',
    /**
     * 子公司
     */
    SUB = '2'
}

export const LevelTypeMapping = {
    [LevelType.HEAD]: '总（母）公司',
    [LevelType.BRANCH]: '分公司',
    [LevelType.SUB]: '子公司'
}

/**
 * 机构状态
 */
export enum StatusType {
    NOR = '0',
    DISABLED = '1'
}

export const StatusTypeMapping = {
    [StatusType.NOR]: '正常',
    [StatusType.DISABLED]: '取消经营资格'
}

/**
 * 查看下属公司权限
 */
export enum DataRoleType {
    NOT = '0',
    HAVE = '1'
}
export const DataRoleTypeMapping = {
    [DataRoleType.NOT]: '无',
    [DataRoleType.HAVE]: '有'
}

/**
 * 是否法人机构
 */
export enum IsLegalType {
    /**
     * 非法人机构
     */
    NOT = '0',
    /**
     * 法人机构
     */
    HAVE = '1'
}
export const IsLegalTypeMapping = {
    [IsLegalType.NOT]: '非法人机构',
    [IsLegalType.HAVE]: '法人机构'
}

/**
 * 加密方式
 */
export enum EncryWayType {
    /**
     * 3DES
     */
    DES = '00',
    /**
     * HMAC-SHA1
     */
    HS = '10'
}
export const EncryWayTypeMapping = {
    [EncryWayType.DES]: '3DES',
    [EncryWayType.HS]: 'HMAC-SHA1'
}

export enum IsGiveSf {
    NO = '0',
    YES = '1'
}

export enum IsSign {
    NO = '0',
    YES = '1'
}

export enum IsVideotape {
    NO = '0',
    YES = '1'
}

export const baseWhetherMapping = {
    '0': '否',
    '1': '是'
}

/**
 * 是否锁定
 */
export enum IsLock {
    Y = '1',
    N = '2'
}

export const IsLockMapping = {
    [IsLock.Y]: '是',
    [IsLock.N]: '否'
}

/**
 * 是否纳入统计口径
 */
export enum IsStatistics {
    Y = '0',
    N = '1'
}

export const IsStatisticsMapping = {
    [IsStatistics.Y]: '是',
    [IsStatistics.N]: '否'
}

export enum RelType {
    /**
     * 实体机构
     */
    ENTITY = '0',
    /**
     * 虚拟机构关系
     */
    VIRTUAL = '1'
}
